code vault - commandlinetoargvaWhat links here?

Code



PCHAR* CommandLineToArgvA(PCHAR CmdLine, int* _argc)
{
    PCHAR* argv;
    PCHAR  _argv;
    ULONG   len;
    ULONG   argc;
    CHAR   a;
    ULONG   i, j;


BOOLEAN in_QM; BOOLEAN in_TEXT; BOOLEAN in_SPACE;

len = strlen(CmdLine); i = ((len+2)/2)*sizeof(PVOID) + sizeof(PVOID);

argv = (PCHAR*)GlobalAlloc(GMEM_FIXED, i + (len+2)*sizeof(CHAR)); _argv = (PCHAR)(((PUCHAR)argv)+i);

argc = 0; argv[argc] = _argv; in_QM = FALSE; in_TEXT = FALSE; in_SPACE = TRUE; i = 0; j = 0;

while( a = CmdLine[i] ) { if(in_QM) { if(a == '\"') { in_QM = FALSE; } else { _argv[j] = a; j++; } } else { switch(a) { case '\"': in_QM = TRUE; in_TEXT = TRUE; if(in_SPACE) { argv[argc] = _argv+j; argc++; } in_SPACE = FALSE; break; case ' ': case '\t': case '\n': case '\r': if(in_TEXT) { _argv[j] = '\0'; j++; } in_TEXT = FALSE; in_SPACE = TRUE; break; default: in_TEXT = TRUE; if(in_SPACE) { argv[argc] = _argv+j; argc++; } _argv[j] = a; j++; in_SPACE = FALSE; break; } } i++; } _argv[j] = '\0'; argv[argc] = NULL;

(*_argc) = argc; return argv; }
From http://alter.org.ua/en/docs/win/args/, modified
code vault - commandlinetoargva
filename:code vault - commandlinetoargva
filename:code%20vault%20%2D%20commandlinetoargva
last edit:March 26 2009 20:10:52 (5519 days ago)
ct = 1714990283.000000 = May 06 2024 06:11:23
ft = 1238112652.000000 = March 26 2009 20:10:52
dt = 476877631.000000